home *** CD-ROM | disk | FTP | other *** search
/ The Original Shareware 1.1 / The Original Shareware (WeMake CDs)(Volume 1.1)(CDs, Inc)(1993).iso / 32 / cadence.zip / VOL1NO3.ZIP / CENTROID.BAS next >
BASIC Source File  |  1986-06-20  |  2KB  |  52 lines

  1. 100 '            ********************************
  2. 110 '            *          CENTROID            *
  3. 120 '            ********************************
  4. 130 '
  5. 140 '              Designed and implemented by:
  6. 150 '                Christopher C. Bachman
  7. 160 '                       6-15-86
  8. 170 ' THIS PROGRAM WILL EXTRACT THE X AND Y CO-ORDINATES FOR EACH CELL IN
  9. 180 ' AN AUTOCAD DXF FILE TO DETERMINE THE CENTROID OF AN AREA.  CELLS ARE
  10. 190 ' CREATED BY USING THE *DOTS PATTERN WITH THE HATCH COMMAND ON LAYER 0
  11. 200 ' IN AUTOCAD.  THE *DOTS PATTERN SHOULD BE THE ONLY DRAWING ENTITIES
  12. 210 ' ON LAYER 0 AND SHOULD FILL ONLY THE AREA UNDER ANALYSIS.
  13. 220 '
  14. 230 LINE INPUT "Give the DXF filename including path and extension. ",F$
  15. 240 OPEN F$ FOR INPUT AS #1
  16. 250   IF EOF(1) THEN 520
  17. 260   INPUT #1, DRAWING.ENTITY.CODE%
  18. 270   LINE INPUT #1, DRAWING.ENTITY.NAME$
  19. 280   IF DRAWING.ENTITY.NAME$ <> "LINE" THEN 250  'Test for line entities.
  20. 290   INPUT #1, DRAWING.LAYER.CODE%               'All line entities are
  21. 300   LINE INPUT #1, DRAWING.LAYER.NAME$          'followed by layer data.
  22. 310   IF DRAWING.LAYER.NAME$ <> "0" THEN GOTO 250 'Test for lines on layer 0.
  23. 320   FOR CO.ORDINATES = 1 TO 2
  24. 330      INPUT #1, CO.ORDINATE.CODE%              'After the layer data comes
  25. 340      LINE INPUT #1, CO.ORDINATE.DATA$         'location data for each line.
  26. 350 '
  27. 360 '    Starting X co-ordinates have a code of 10.
  28. 370 '
  29. 380      IF CO.ORDINATE.CODE% = 10 THEN X.DATA# = VAL(CO.ORDINATE.DATA$)
  30. 390 '
  31. 400 '    Starting Y co-ordinates have a code of 20.
  32. 410 '
  33. 420      IF CO.ORDINATE.CODE% = 20 THEN Y.DATA# = VAL(CO.ORDINATE.DATA$)
  34. 430 '
  35. 440   NEXT CO.ORDINATES
  36. 450 '
  37. 460 ' Accumulate totals and cell counter.
  38. 470 '
  39. 480   X.TOTAL# = X.TOTAL# + X.DATA#
  40. 490   Y.TOTAL# = Y.TOTAL# + Y.DATA#
  41. 500   NO.OF.CELLS = NO.OF.CELLS + 1
  42. 510   GOTO 250                                 'Loop til End of File
  43. 520 CLOSE 1                                    'Close Dxf file.
  44. 530 MEAN.OF.X# = X.TOTAL# / NO.OF.CELLS        'Average X value.
  45. 540 MEAN.OF.Y# = Y.TOTAL# / NO.OF.CELLS        'Average Y value.
  46. 550 '
  47. 560 ' Print results.
  48. 570 '
  49. 580 PRINT "X CO-ORDINATE FOR CENTROID OF AREA = "MEAN.OF.X#
  50. 590 PRINT "Y CO-ORDINATE FOR CENTROID OF AREA = "MEAN.OF.Y#
  51. 600 END
  52.